package com.junjiao.util.mobile;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
/*
import javapns.back.PushNotificationManager;
import javapns.back.SSLConnectionHelper;
import javapns.data.Device;
import javapns.data.PayLoad;
*/
import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.springframework.scheduling.quartz.QuartzJobBean;

public class PublishServer {

//	private static Log log = LogFactory.getLog(PublishServer.class);
//	 /**
//     * Android push机制
//     * 
//     * @param parameters
//     *            key 手机获取的token value push的内容
//     */
//    private static void androidPushMessage(HashMap<String, String> parameters)
//	    throws UnsupportedEncodingException {
//	log.debug("Android Push Start ");
//	Configuration conf = ConfigReader.getConfiguration("mobile");
//	String httpUrl = conf.getChild("push_android_url").getValue();
//
//	byte[] responseBody = {};
//	// 构造HttpClient的实例
//	HttpClient httpClient = new HttpClient();
//	// 创建POST方法的实例
//	PostMethod postMethod = new PostMethod(httpUrl);
//	postMethod.addRequestHeader("Content-Type",
//		"application/x-www-form-urlencoded;charset=utf-8");
//	// 使用系统提供的默认的恢复策略
//	postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
//		new DefaultHttpMethodRetryHandler());
//	NameValuePair[] parametersBody = new NameValuePair[parameters.size()];
//	try {
//	    Set<String> keySet = parameters.keySet();
//	    int i = 0;
//	    for (String key : keySet) {
//		NameValuePair param = new NameValuePair(key, parameters
//			.get(key));
//		parametersBody[i++] = param;
//	    }
//	    postMethod.setRequestBody(parametersBody);
//	    // 执行getMethod
//	    int statusCode = httpClient.executeMethod(postMethod);
//	    if (statusCode != HttpStatus.SC_OK) {
//		System.err.println("Method failed: "
//			+ postMethod.getStatusLine());
//	    }
//	    // 读取内容
//	    responseBody = postMethod.getResponseBody();
//	    // 处理内容
//	} catch (HttpException e) {
//	    // 发生致命的异常，可能是协议不对或者返回的内容有问题
//	    // log.info("发生致命的异常，可能是协议不对或者返回的内容有问题！");
//	    // log.info("responseCharset:" + postMethod.getResponseCharSet());
//	    // log.info("responseBody" + responseBody);
//	    e.printStackTrace();
//	} catch (IOException e) {
//	    // 发生网络异常
//	    e.printStackTrace();
//	} finally {
//	    // log.info("responseCharset:"+getMethod.getResponseCharSet());
//	    // 释放连接
//	    postMethod.releaseConnection();
//	}
//	log.debug("Android Push End ");
//    }
//
//    /**
//     * IOS push机制
//     * 
//     * @param deviceToken
//     *            iphone手机获取的token
//     * @param message
//     *            push的内容
//     * @param badge
//     *            图标小红圈的数值
//     * @param dictionary
//     *            其他字典数据
//     */
//    private static void iphonePushMessage(String deviceToken, String message,
//	    int badge, HashMap<String, String> dictionarys,String isTest) {
//	try {
//		log.debug("IOS Push Start deviceToken:" + deviceToken);
//	    PayLoad payLoad = new PayLoad();
//	    payLoad.addAlert(message);// push的内容
//	    payLoad.addBadge(badge);// 图标小红圈的数值
//	    payLoad.addSound("default");// 铃音
//	    if (null != dictionarys) {
//		Set<Map.Entry<String, String>> set = dictionarys.entrySet();
//		for (Iterator<Map.Entry<String, String>> it = set.iterator(); it
//			.hasNext();) {
//		    Map.Entry<String, String> entry = (Map.Entry<String, String>) it
//			    .next();
//
//		    payLoad.addCustomDictionary(entry.getKey(), entry
//			    .getValue());
//		}
//	    }
//
//	    PushNotificationManager pushManager = PushNotificationManager
//		    .getInstance();
//	    pushManager.addDevice("iPhone", deviceToken);
//
//	    // Connect to APNs
//	    /************************************************
//	     * 测试的服务器地址：gateway.sandbox.push.apple.com /端口2195
//	     * 产品推送服务器地址：gateway.push.apple.com / 2195
//	     ***************************************************/
//	    String host = "";
//	    if("1".equals(isTest)){
//		host = "gateway.sandbox.push.apple.com";
//	    }else{
//		host = "gateway.push.apple.com";
//	    }
//	    int port = 2195;
//	    String certificatePath = Thread.currentThread()
//		    .getContextClassLoader().getResource("51auto_push.p12")
//		    .getPath();// 导出的证书
//	    String certificatePassword = "51auto";// 此处注意导出的证书密码不能为空因为空密码会报错
//	    pushManager.initializeConnection(host, port, certificatePath,
//		    certificatePassword,
//		    SSLConnectionHelper.KEYSTORE_TYPE_PKCS12);
//
//	    // Send Push
//	    Device client = pushManager.getDevice("iPhone");
//	    pushManager.sendNotification(client, payLoad);
//	    pushManager.stopConnection();
//
//	    pushManager.removeDevice("iPhone");
//	    log.debug("IOS Push End");
//	} catch (Exception e) {
//	    e.printStackTrace();
//	}
//    }
}
